package com.michael.abstractmodel;

/**
 * 创建一个抽象类
 *
 * 豆浆的制作过程  选材--->添加配料--->浸泡--->放到豆浆机打碎
 */
public abstract class SoyaMilk {

    //模板方法，final修饰，不允许子类重写
    public final void prepareRecipe(){
        //选材
        this.selectMaterial();
        //配料
        this.addCondiments();
        //浸泡
        this.soak();
        //打碎
        this.beat();
    }

    //选材
    public void selectMaterial(){
        System.out.println("第一步：选材......");
    }

    //配料
    public abstract void addCondiments();

    //浸泡
    public void soak(){
        System.out.println("第三步：浸泡.......");
    }

    //打碎
    public void beat(){
        System.out.println("第四步：打碎.......");
    }
}
